Лабораторная работа № 8

Компонент Image

Компонент Image представляет собой некоторую ограниченную поверхность с канвой, на которую можно заносить изображения. Рисунок устанавливается в свойстве Picture. Установленный рисунок можно центрировать (свойство Center), вписать в рамки компонента увеличив или уменьшив (свойство Stretch), сделать прозрачным относительно нижней левой точки рисунка (свойство Transparent).

Компонент может содержать рисунок большинства широко распространенных форматов. Delphi поддерживает три типа файлов — битовые матрицы, пиктограммы и метафайлы. Все три типа файлов хранят изображения; различие заключается лишь в способе их хранения внутри файлов и в средствах доступа к ним:

- Битовая матрица (файл с расширением .bmp) отображает цвет каждого пикселя в изображении. При этом информация хранится таким образом, что любой компьютер может отобразить изображение с разрешающей способностью и количеством цветов, соответствующими его конфигурации.

- Пиктограммы (файлы с расширением .ico) - это маленькие битовые матрицы. Они повсеместно используются для обозначения значков приложений, в быстрых кнопках, в пунктах меню, в различных списках. Способ хранения изображений в пиктограммах схож с хранением информации в битовых матрицах, но имеются и различия. В частности, пиктограмму невозможно масштабировать, она сохраняет тот размер, в котором была создана.

- Метафайлы (Metafiles) хранят не последовательность битов, из которых состоит изображение, а информацию о способе создания картинки. Они хранят последовательности команд рисования, которые и могут быть повторены при воссоздании изображения. Это делает такие файлы, как правило, более компактными, чем битовые матрицы.

Некоторые свойства:

- AutoSize, установленное в true, автоматически подгоняет компонент под размер помещенной в него картинки. Если же это свойство установлено в false, то изображение может не поместиться в компонент или, наоборот, площадь компонента может оказаться много больше площади изображения.

- Stretch позволяет подгонять не компонент под размер рисунка, а рисунок под размер компонента.

 Задание: Установите AutoSize в false, растяните или сожмите размер компонента Image и установите Stretch в true - рисунок займет всю площадь компонента. Но поскольку вряд ли реально установить размеры Image точно пропорциональными размеру рисунка, то изображение исказится. Устанавливать Stretch в true может иметь смысл только для каких-то узоров, но не для картинок. Свойство Stretch не действует на изображения пиктограмм, которые не могут изменять своих размеров.

Center, установленное в true, центрирует изображение на площади Image, если размер компонента больше размера рисунка.

- Transparent (прозрачность), установленное в true, делает изображение прозрачным. Это можно использовать для наложения изображений друг на друга, например, наложение на картинку надписей, выполненных в виде битовой матрицы. Эти надписи можно сделать с помощью встроенной в Delphi программы Image Editor. Свойство Transparent действует только на битовые матрицы. При этом прозрачным (т.е. заменяемым на цвет расположенного под ним изображения) делается по умолчанию цвет левого нижнего пикселя битовой матрицы.

Задание (продолжение): Поместите на форму второй компонент Image и загрузите в него другую картинку. Можно взять какую-нибудь мало заполненную, контурную картинку, например, из числа помещаемых обычно на кнопки (например, стрелку - файл ...\program files\common files\borland shared\images\buttons\arrow1l.bmp). Разместите компоненты Image так, чтобы они перекрывали друг друга. В верхнем компоненте установите Transparent равным true - верхняя картинка перестала заслонять нижнюю.